[PATCH] auth: ldap - Fix crash if users are iterated, but userdb_ldap_iterate_fields...
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 6 Nov 2025 12:52:37 +0000 (14:52 +0200)
committerNoah Meyerhans <noahm@debian.org>
Fri, 6 Mar 2026 14:36:28 +0000 (09:36 -0500)
From 576a2f52bff4c13971d9e6d1172857a4f18ddd14 Mon Sep 17 00:00:00 2001
Bug-Debian: https://bugs.debian.org/1121000

Bug-Debian: https://bugs.debian.org/1121000
Gbp-Pq: Name bug1121000_dovecot-ldap_Crash_if_iterate_filter_is_set_but_iterate_fields_is_not_set.patch

src/auth/userdb-ldap.c

index b13bc3beda0089daef2becd4753cb633f838548c..664e95ad872aedd63a4e211abc4910bc73c6ff2d 100644 (file)
@@ -201,8 +201,11 @@ static void userdb_ldap_iterate_callback(struct ldap_connection *conn,
                         &set, &error) < 0) {
                e_error(event, "%s", error);
                ctx->ctx.failed = TRUE;
-       }
-       else {
+       } else if (!array_is_created(&set->iterate_fields)) {
+               e_error(event, "iterate: No userdb_ldap_iterate_fields specified");
+               ctx->ctx.failed = TRUE;
+               settings_free(set);
+       } else {
                unsigned int count;
                const char *const *items = array_get(&set->iterate_fields, &count);
                for (unsigned int ndx = 0; ndx < count - 1;) {